簡單的升序排序是非常容易的。只需要呼叫sorted()方法。它返回一個新的list
sorted([5, 2, 3, 1, 4])
結果:
[1, 2, 3, 4, 5]
又或者使用list.sort()方法來排序,這個方法會直接修改list
a = [5, 2, 3, 1, 4]
a.sort()
print(a)
結果: [1, 2, 3, 4, 5]
list.sort()和sorted()都接受一個引數reverse(True or False)來表示升序或降序排序。例如對上面的student降序排序如下:
student_tuples = [
('Amy', 'O', 15),
('Bruce', 'A', 12),
('dave','B', 10),
]
sorted(student_tuples, key=itemgetter(2), reverse=True)
結果:
[('Amy', 'O', 15), ('Bruce', 'A', 12), ('dave', 'B', 10)]
Natural Sort
如果要把書頁作排序
pages = ['p12', 'p3', 'p15', 'p25', 'p4', 'p6', 'p11', 'p1']
sorted(pages)
結果:
['p1', 'p11', 'p12', 'p15', 'p25', 'p3', 'p4', 'p6']
因為Python 使用 ASII 的方式排序,所以會這樣排列,但幸好 Python 擁有強大的第三方函式庫可以使用,所以我們可以選用 natsort 來解決這個問題,這個函式庫可以簡單的用 easy_install 或是 pip 下載。
from natsort import natsorted
pages = ['p12', 'p3', 'p15', 'p25', 'p4', 'p6', 'p11', 'p1']
natsorted(pages)
['p1', 'p3', 'p4', 'p6' 'p11', 'p12', 'p15', 'p25']